<?php
/**
 * Sentry 报警客户端服务
 * @App	
 * @Group 
 * @Action SentryClientService
 * @author lilei
 * @date 2018年12月6日
 *
 */
namespace app\common\service;
use Raven_Autoloader;
use Raven_Client;

require_once WEB_COMPOSER.'sentry/sentry/lib/Raven/Autoloader.php';
class SentryClientService {
	
	/**
	 * sentry 客户端标识
	 * @var \Raven_Client
	 */
	var $clinet;
	
	/**
	 * DSN 地址
	 * @var string
	 */
	Const DSN = "http://cac613c1ccd942e3a598a3b833611f4f:eed808f78c2f488a97aa9c13f3c869c9@59.110.214.41:9000/7";
	
	/**
	 * 级别
	 * @var string
	 */
	const DEBUG = 'debug';
	const INFO = 'info';
	const WARN = 'warning';
	const WARNING = 'warning';
	const ERROR = 'error';
	const FATAL = 'fatal';
	
	/**
	 * 构造函数
	 * @return Raven_Client
	 */
	public function __construct() {
		Raven_Autoloader::register();
		$this->clinet = new Raven_Client(self::DSN);
		$this->clinet->install();
	}
	
	/**
	 * 发送信息
	 * @param string $msg
	 * @param string $level
	 */
	public function sendMessage( $msg, $level = self::WARN ) {
		$this->clinet->captureMessage($msg, [], $level);
	}
	
	/**
	 * 匿名方法
	 * @param string $method
	 * @param array $args
	 */
	public function __call( $method,$args ) {
		//调用缓存类型自己的方法
		if(method_exists($this->clinet, $method)){
			return call_user_func_array(array($this->clinet,$method), $args);
		}else{
			throw_exception(__CLASS__.':'.$method.L('_METHOD_NOT_EXIST_'));
			return;
		}
	}
}